package cn.edu.njtc.mapper;

import cn.edu.njtc.entity.dto.UserAddDto;
import cn.edu.njtc.entity.dto.UserDto;
import cn.edu.njtc.entity.dto.UserTokenDto;
import cn.edu.njtc.entity.pojo.User;
import cn.edu.njtc.entity.vo.UserVo;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;
@Mapper
public interface UserMapper {
    User selectById(Integer id);
    int deleteById(Integer id) ;
    int insert(User user); ;
    int update(User user);
    //当参数是string类型，个数不重要，需要配合使用@Param注解
    //就可以在Mapper映射文件中使用#{phone}
//    User selectByPasswordAndPhone(@Param("password")String password, @Param("phone") String phone) ;

    //超过两个参数，最好将这些参数封装在一个类中
    UserTokenDto selectByPasswordAndPhone(UserDto userDto) ;
    List<User> selectLikeName(@Param("name") String name) ;
//    List<User> selectIn(@Param("begin") LocalDateTime begin,@Param("end") LocalDateTime end);
//    List<User> page(PageDto pageDto);
//    UserVo selectDetailById(Integer id);
    int deleteBatch(Integer... ids);
//    UserRecordVo selectDecordById(Integer userId);
//    List<User> selectByNamePhone(@Param("name") String name,@Param("phone")String phone);
//    List<User> selectByTime(UserDto userDto);
    List<User> selectBychar(String input);
    User selectByPhone(String phone);
    List<User> selectAllUsers();
}
